package com.tf_cut.backend.seller.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.tf_cut.backend.agent.vo.AgentAndAccountVo;
import com.tf_cut.backend.common.pojo.Result;
import com.tf_cut.backend.seller.service.SellerRefAgentService;
import com.tf_cut.backend.seller.vo.SellerAndAccountVo;
import com.tf_cut.backend.seller.vo.SellerRefAgentVo;

import lombok.extern.slf4j.Slf4j;


@RestController
@RequestMapping("/backend/seller/ref")
@Slf4j
public class SellerRefController {
	
	@Autowired
	private SellerRefAgentService sellerRefAgentService;
	
	// 查找关联商户与代理商
	@RequestMapping("findListSellerRefAgent")
	public String findListSeller(String json) {
		SellerRefAgentVo avo = JSON.parseObject(json, SellerRefAgentVo.class);
		return JSON.toJSONString(sellerRefAgentService.findListSellerRefAgent(avo));
	}
	
	@RequestMapping("getSellerRef")
	public String getSellerRef(String id) {
		Result<SellerRefAgentVo> result = sellerRefAgentService.get(id);
		return JSON.toJSONString(result.getData());
	}
	
	// 关联商户与代理商
	@RequestMapping("saveSellerRefAgent")
	public String insertSellerRefAgent(String json) {
		Result<SellerRefAgentVo> result = null;
		SellerRefAgentVo avo = JSON.parseObject(json, SellerRefAgentVo.class);
		try {
			result = sellerRefAgentService.save(avo);
		}catch(Exception e) {
			log.error(e.getMessage(),e);
			result = Result.of(avo);
			result.setMsg(e.getMessage());
			result.setFlag(false);
		}
		return JSON.toJSONString(result);
	}
	
	// 冻结（Y）/删除（D）/解冻（N）
	@RequestMapping("operation")
    public String operation(String id, String state) {
		Result<Boolean> result = Result.of(true);
		result.setFlag(true);
		try {
			SellerRefAgentVo avo = sellerRefAgentService.get(id).getData();
			avo.setRefState(state);
			sellerRefAgentService.save(avo);
		} catch(Exception e) {
			log.error(e.getMessage(),e);
			result = Result.of(false);
			result.setFlag(false);
		}
		return JSON.toJSONString(result);
    }
	
}
